package com.tairanchina.joat;

import java.util.List;
import java.util.Optional;

/**
 * Created by 周靖捷 on 2016/10/17.
 */
public interface PluginManager {
    /**
     * 安装
     *
     * @param installer
     */
    void install(PluginInstaller installer);

    /**
     * 更新
     *
     * @param installer
     */
    void update(PluginInstaller installer);

    /**
     * 卸载
     *
     * @param installer
     */
    void uninstall(PluginInstaller installer);

    /**
     * 查询
     *
     * @return
     */
    List<PluginInstaller> list();


    /**
     * 查询
     *
     * @param installerId
     * @return
     */
    Optional<PluginInstaller> findPluginInstaller(String installerId);


    /**
     * 实例
     *
     * @param installerId
     * @return
     */
    Plugin instance(String installerId);
}
